import { defineConfig } from 'vite'
import viteCompression from 'vite-plugin-compression';
import Components from 'unplugin-vue-components/vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// import {
//   AntDesignVueResolver,
// } from 'unplugin-vue-components/resolvers'

//下面根据你的项目实际需要
import { join } from 'node:path'
const PROJECT_ROOT: string = './'

export default defineConfig({
  base: './',
  plugins: [
    vue(),
    Components({
      dts: true,
      dirs: [join(PROJECT_ROOT, 'src') + '/components'], // 按需加载的文件夹
      //resolvers: [], // ElementPlus按需加载
      resolvers: [
        // AntDesignVueResolver(),
      ],
      types: [{
        from: 'vue-router',
        names: ['RouterLink', 'RouterView'],
      }],
    }),
    viteCompression () //gzip压缩
  ],
  // 配置代理
  // 配置前端服务地址和端口
  server: {
    host: '0.0.0.0',
    // 是否开启 https
    // https: false,
    proxy: {
      '/api': {
        // 后台地址
        target: ' http://192.168.0.79:5173',
        changeOrigin: true,
        rewrite: path => path.replace(/^\/api/, '')
      },
    }
  },
  build: {
    // target: ['modules'],
    outDir: 'dist', // 输出文件的目录
    assetsInlineLimit: 4096, // 在生成的包中压缩文件的大小限制（以字节为单位）
    cssCodeSplit: true, // 是否将CSS拆分为更小的块并独立加载
    //minify: 'terser', // 代码压缩方式
    sourcemap: false, // 是否生成sourcemap文件
    rollupOptions: {
      // 安全问题，打包的文件名要混淆
      output: {
        chunkFileNames: 'static/js/[hash].js',
        entryFileNames: 'static/js/[hash].js',
        assetFileNames: 'static/[ext]/[hash].[ext]',
      }
    }
  },
  resolve:{
    alias:{
        //访问别名@ 
      "@":path.resolve(__dirname,'./src')
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        // 自定义的主题色
        // additionalData: `@use "@/assets/ele.scss" as *;`,
      },
    },
  }
})
